<%@ include file="/common/common.jsp"%>
<%@ page language="java" pageEncoding="UTF-8"%>
<head>
<!--添加弹层效果和layui-->
<script type="text/javascript" src="<%=jsPath%>/layer/layer.js"></script>

<script>
    // window.open(" " , "_self");
    var displayOption= new Array();//定义显示类型
    //加载
    $(document).ready(function () {
        //如果是文本下发，则设置处理内容
        var processedTextTemp = '${processedText}';
        // console.log("shinion -------> processedText = "+processedTextTemp);
        let typeValue = $('input[name="releaseType"]:checked').val();
        if(typeValue == '文本下发'){
            $("#releaseTextArea").val(processedTextTemp);
        }

        //单选按钮点击事件
        $("#processedTypeTd").click(function(){
            var value1 = $('input[name="releaseType"]:checked').val();
            if (value1 == "文本下发"){
                $("#sendDisplayTr").css("display","table-row");
                $("#releaseTextArea").css("height","110px");
                $("#textFlgTd").html("发送内容：");

                let processedTextTemp = '${processedText}';// 处理内容
                $("#releaseTextArea").val(processedTextTemp);
            }else{
                $("#sendDisplayTr").css("display","none");
                $("#releaseTextArea").css("height","147px");
                $("#textFlgTd").html("处理描述：");

                $("#releaseTextArea").val('');//处理内容
            }
        });

        //按钮点击事件
        $("#releaseAlarmBtn").click(function () {
            // console.log("点击获取参数");
            var value1 = $('input[name="releaseType"]:checked').val();
            var value2 = $("#releaseTextArea").val();

            if (value1 == "") {
                layer.msg("请选择一种处理方式");
                return;
            }
            if (value2 == "" && value1 == '文本下发') {
                layer.msg("请输入文本信息或处理描述内容");
                return;
            }

            //传递参数
            if (value1 == "文本下发") {
                //发送文本处理方式
                $("#formParam1").val(value2);
                //获取显示类型
                var displayOption = new Array();
                for (var i = 0; i < 5; i++) {
                    if (i != 1) {
                        if ($("#ckDisplay" + i).attr("checked") != undefined) {
                            displayOption.push($("#ckDisplay" + i).val());
                        }
                    }
                }
                //校验选择类型
                if (displayOption.length == 0) {
                    layer.msg("请选择显示类型");
                    return;
                }
                //设置参数
                $("#formParam2").val(displayOption);
            } else {
                //报警处理方式
                var strTemp = value1 + ":" + value2;
                $("#formParam1").val(strTemp);
            }

            if(setBasicParams()){
                if(value1 == "文本下发"){
                    processedAlarmAction("send");//父页面方法
                }else{
                    processedAlarmAction("processed");//父页面方法
                }
            }else{
                layer.msg("获取基本数据失败，请重试!");
                return;
            }
            
        });
    });


/*
报警处理命令下发
接口方法
    1，首先设置命令参数
    2.如果参数设置校验成功，则下发命令，等待回应，输出命令执行结果
    3.如果参数设置校验失败，输出提示，不进行下一步命令
*/
function processedAlarmAction(flg){
    try {
        if (formatProcessedParams(flg)) {
            Utility.showLoading("正在进行报警处理命令下发...");
            $("#processedForm").ajaxSubmit(function (data) {
                console.log("报警处理返回结果：");
                console.log(data);
                if (data.success) {
                    layer.msg("下发成功");
                    try {
                        let temp = {};
                        if("${alarmId}" != ""){
                            temp.alarmId = "${alarmId}";
                        }
                        if (window.parent.AlarmGrid != undefined) {
                            if (typeof (window.parent.AlarmGrid.removeProcessedAlarm) == "function") {
                                window.parent.AlarmGrid.removeProcessedAlarm(temp);
                            }
                        }
                    } catch (error) {
                        console.error("同步报警数据处理结果失败：" + error);
                    }
                } else {
                    layer.msg(data.messgae);
                }
                //定时器延时3秒关闭窗口
                $(document).oneTime("3s","closeTime",function(){
                    try {
                        var  objTemp = parent.AlarmGrid;
                        if(objTemp){
                            objTemp.getAlarmPageData();
                        }
                    } catch (error) {
                        console.error("获取父窗口对象错误："+error);
                    }
                    window.parent.closeCommandWindow();
                });
                
            });
            Utility.hideLoading();
        }else{
            //设置参数失败
            console.error("报警处理中设置命令参数失败!");
        }
        // console.log($("#formVehicleIds").val()); 
        // console.log($("#formAlarmIds").val()); 
        // console.log($("#formAlarmIdsForAdas").val()); 
        // console.log($("#formParam1").val()); 
        // console.log($("#formParam2").val());   
    } catch (error) {
        console.error("发送报警处理命令错误：" + error);
    }
}

//设置基本的参数
function setBasicParams() {
    try {
        var vehicleId = ${ vehicleId };
        var alarmId = ${ alarmId };
        //定义参数
        var alarmIds = new Array();
        var alarmIdsForAdas = new Array();
        var vehicleIds = new Array();
        //填值
        vehicleIds.push(vehicleId);
        alarmIds.push(alarmId);

        if (alarmIds.length == 0) {
            layer.msg("报警处理获取数据失败，请重试");
            return false;
        }

        $("#formVehicleIds").val(vehicleIds);//车辆id列表
        $("#formAlarmIds").val(alarmIds);//alarm表中报警id列表
        $("#formAlarmIdsForAdas").val(alarmIdsForAdas);//adas报警ids，这里为空


        return true;

    } catch (error) {
        console.error("设置报警处理参数错误：" + error);
        return false;
    }
}

    /*
格式化报警参数
    根据情况对参数进行设置，
    1.如果参数为"send"，则为发送文本处理方式，设置参数名称和对应请求路径为sendText类型
    2.如果参数为"processed",则为解除报警处理方式，设置参数名称和对应路径为releaseAlarm类型
*/
function formatProcessedParams(flg){
    try {
        if (flg == "send") {
            //发送文本方式
            //定义action
            $("#processedForm").attr("action", "<%=ApplicationPath%>/sendText/sendAlarms.action");
            //初始化参数
            $("#formParam1").attr("name", "textContent");//定义第一参数名
            $("#formParam2").attr("name", "displayOption");//定义第二参数名

            return setBasicParams();
        } else if (flg == "processed") {
            //解除报警方式
            //定义action
            $("#processedForm").attr("action", "<%=ApplicationPath%>/adasAlarmsRelease/releaseAllAlarms.action");
            //初始化参数
            $("#formParam1").attr("name", "processedRemark");//定义第一参数名,备注：（处理方式和处理描述，）
            return setBasicParams();
        }
    } catch (error) {
        console.error("格式化报警处理参数错误："+error);
        return false;
    }
    
}


function closeFun(){
    // console.log("close  aaaa .....");
    window.parent.closeCommandWindow();
}

</script>
</head>
<body>
    <table width="100%" class="TableBlock">
        <tbody>
            <tr>
                <td align="right">处理方式:</td>
                <td id="processedTypeTd">
                    <input id="releaseType2" type="radio" name="releaseType" value="文本下发" checked="checked"/>文本下发
                    <input id="releaseType1" type="radio" name="releaseType" value="报警解除"/>报警解除
                    <!-- <input id="releaseType3" type="radio" name="releaseType" value="误报"/>误报
                    <input id="releaseType4" type="radio" name="releaseType" value="忽略"/>忽略
                    <input id="releaseType5" type="radio" name="releaseType" value="其他"/>其他 -->
                </td>
            </tr>
            <tr id="sendDisplayTr">
                    <td align="right">信息显示类型:</td>
                    <td>
                        <input type="checkbox" id="ckDisplay0" name="displayOption" value="0" />紧急
                        <input type="checkbox" id="ckDisplay2" name="displayOption" value="2" checked="true"/>终端显示器显示
                        <input type="checkbox" id="ckDisplay3" name="displayOption" value="3" checked="true"/>终端TTS播读
                        <input type="checkbox" id="ckDisplay4" name="displayOption" value="4" />广告屏显示
                        <!--<input type="checkbox" id="" name="displayOption" value="5" />弗斯特广告屏-->
                    </td>
                </tr>
            <tr>
                <td id="textFlgTd" align="right">发送内容</td>
                <td>
                    <textarea id="releaseTextArea" name="releaseText" class="required" style="height:110px;" cols=40 onpropertychange="this.style.posHeight=this.scrollHeight "></textarea>
                </td>
            </tr>
            <tr>
            <td colspan=2 align="center">
                <input id="releaseAlarmBtn" type="button"  value="提交" style="width:90px;height:30px;font-size:14px;">
                &nbsp;&nbsp;&nbsp;&nbsp;
                <input type="button" value="关闭" onclick="javascript:closeFun();" style="width:90px;height:30px;font-size:14px;"/>
            </td>
            </tr>
        </tbody>
    </table>
    <form id="processedForm" method="POST">
        <input id="formVehicleIds" type="hidden" name="vehicleIds" value=""/><!--其他选中的车辆-->
        <input id="formAlarmIds" type="hidden" name="alarmIds" value=""/><!--adas报警索引id-->
        <input id="formAlarmIdsForAdas" type="hidden" name="alarmIdsForAdas" value=""/><!--adas报警索引alarmIndex-->
        <input id="formParam1" type="hidden" name="" value=""/><!--根据需要设定的临时参数1-->
        <input id="formParam2" type="hidden" name="" value=""/><!--根据需要设定的临时参数2-->
    </form>
</body>